# config/config.py
import os

DASHSCOPE_API_KEY = os.getenv('DASHSCOPE_API_KEY', 'sk-4458a4ebf1c146f1b59434c22aa85aea')
LOG_FILE = "logs/radar_simulation.log"
SIMULATION_DATA_PATH = "data/simulation"
RADAR_CONFIG_PATH = "config/radar_params.json"

RADAR_DEFAULT_PARAMS = {
    "frequency": 10.0,  # GHz
    "power": 1500.0,    # Watts (提高功率以增强检测能力)
    "antenna_gain": 35.0,  # dB (提高增益)
    "pulse_width": 10.0,   # microseconds
    "pulse_repetition_frequency": 1000.0,  # Hz (搜索模式默认PRF)
    "pulse_repetition_time": 1.0,  # milliseconds (1/PRF，搜索模式)
    "bandwidth": 10.0,     # MHz
    "sampling_rate": 100.0,  # MHz (默认值，实际采样率根据工作模式动态调整)
    "detection_range": 100.0,  # km
    "azimuth_range": (-180, 180),  # degrees
    "elevation_range": (-90, 90),   # degrees
    "resolution_range": 0.015,   # km (15m，由带宽决定：c/(2*B)=15m)
    "resolution_azimuth": 1.0,  # degrees
    "noise_factor": 3.0,  # dB（已废弃，使用receiver_noise_db）
    "receiver_gain_db": 10.0,  # dB, 接收机增益（Low Noise Amplifier增益）
    "receiver_noise_db": 8.0,  # dB, 接收机噪声系数 (Noise Figure)
    "atmospheric_loss": 0.1,  # dB/km

    # 搜索模式参数（大波门、低采样率、远距离、低速目标）
    # R_unamb = c*PRT/2 = 3e8*1e-3/2 = 150 km
    # V_unamb = λ*PRF/4 = 0.03*1000/4 = 7.5 m/s (27 km/h)
    "search_range_gate_start": 5.0,  # km
    "search_range_gate_width": 100.0,  # km
    "search_sampling_rate": 10.0,  # MHz, 搜索模式采样率（低采样率，降低数据量）
    "search_pulse_repetition_time": 1.0,  # ms (PRT，对应PRF=1000 Hz)
    "search_max_velocity": 7.0,  # m/s (最大不模糊速度约7.5 m/s，留有余量)

    # 跟踪模式参数（小波门、高采样率、近距离、中速目标）
    # 推荐PRT=0.2ms: R_unamb=30km, V_unamb=37.5 m/s (135 km/h)
    "track_range_gate_margin": 2.0,  # km, 目标前后的波门容差（合理值，包含脉冲宽度后约4km波门）
    "track_sampling_rate": 100.0,  # MHz, 跟踪模式采样率（高采样率，提高精度）
    "track_pulse_repetition_time": 1.0,  # ms (当前使用搜索模式PRT，可改为0.2ms支持高速目标)
    "track_max_velocity": 35.0,  # m/s (如果PRT=0.2ms，最大不模糊速度约37.5 m/s)
    "coherent_integration_num": 32  # 相参积累脉冲数（降低到32，RD图更新频率翻倍至31.25Hz）
}

SIMULATION_PARAMS = {
    "time_step": 0.1,  # seconds
    "max_simulation_time": 3600.0,  # seconds
    "target_update_rate": 10.0,  # Hz
    "weather_update_rate": 1.0,   # Hz
    "log_update_rate": 1.0        # Hz
}